package com.kun.video.ui.control.button;

import com.kun.video.ui.EventPriorityEnum;

/**
 * TODO
 *
 * @author gzc
 * @since 2025/3/18 2:07
 **/
public interface ButtonEvent {

    /**
     * 生成事件唯一标识
     * <p>默认实现组合时间戳和对象哈希值保证唯一性</p>
     *
     * @return 格式："btn-时间戳-哈希值" 的字符串标识
     */
    default String getEventId() {
        return "btn-" + System.currentTimeMillis() + "-" + hashCode();
    }

    /**
     * 执行事件核心逻辑
     *
     * @throws Exception 执行过程中可能抛出的任何异常
     */
    void execute() throws Exception;


    default EventPriorityEnum getPriority() {
        return EventPriorityEnum.NORMAL;
    }

    ;
}
